home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
compuserve-file-archive
/
08 System Utilities
/
CPALLG.BIN
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
5KB
|
137 lines
1 REM SAVE"0:COPYALL 64 GLINK",8
2 REM ** JIM BUTTERFIELD'S C64 COPY-ALL
3 REM ** MODIFIED FOR USE WITH THE GLINK IEEE-488 INTERFACE
4 REM ** RICHARD EVERS 07-06-1987
5 :
6 REM ** ALLOWS CONCURRENT COPYING OF DATA
7 REM ** SERIAL TO IEEE-488, IEEE-488 TO SERIAL
8 REM ** SERIAL TO SERIAL OR IEEE-488 TO IEEE-488
9 REM ** VIA TRANSACTOR'S GLINK IEEE-488 INTERFACE
10 :
11 REM ** TRANSACTOR PUBLISHING INC.
12 REM ** 85 WEST WILMOT ST., #10
13 REM ** RICHMOND HILL,ONTARIO, CANADA
14 REM ** L4B-1K7 (416) 764-5273
15 :
16 PRINT "[147] DISK COPY-ALL JIM BUTTERFIELD"
17 PRINT "** GLINK IEEE-488 INTERFACE VERSION **"
18 PRINT " COPIES BETWEEN SERIAL AND IEEE DRIVES"
19 A$="!JIM BUTTERFIELD!": A$=A$+A$+A$: A$=A$+A$+A$+A$+A$
20 P$=""
21 DIM L2(232),L1%(232),N$(232),T%(232),T$(4)
22 DATA XXX,SEQ,PRG,USR,REL
23 FOR J=0 TO 4: READ T$(J): NEXTJ
24 :
25 REM WHEN SIZE=3956 THEN CODE BEGINS AT 6005
26 Z1=6027: REM ENTRY POINT #1
27 Z2=Z1+3: REM ENTRY POINT #2
28 Z3=Z2+3: REM ENTRY POINT #3
29 Z4=Z3+3: REM ENTRY POINT #4
30 INIT=Z4+3: REM MOVE ROM TO RAM, ETC.
31 SWAP=INIT+3: REM SWAP ROM TO RAM OR VICE-VERSA
32 FR=251: TU=252: TP=253: REM FROM, TO AND TEMP STORAGE OF DRIVE TYPE
33 :
34 INPUT"FROM UNIT 8[157][157][157]";F
35 GOSUB123: REM GET DRVNUM
36 F$=D$
37 INPUT "1) SERIAL OR 2) IEEE 2[157][157][157]";TF
38 IF TF<1 OR TF>2 THEN 37
39 :
40 INPUT"TO UNIT 8[157][157][157]";T
41 GOSUB123: REM GET DRVNUM
42 T$=D$
43 INPUT "1) SERIAL OR 2) IEEE 1[157][157][157]";TT
44 IF TT<1 OR TT>2 THEN 43
45 :
46 IF F=T AND F$=T$ AND TT=TF THEN RUN
47 :
48 POKE FR,TF-1: POKE TU,TT-1: REM DRIVE TYPE SOURCE AND DESTINATION
49 SYS(INIT): REM MOVE ROM TO RAM, ETC.
50 XX=FR: GOSUB 136: N=0: CLOSE1: CLOSE15: OPEN 15,F,15: PRINT#15,"I"+F$
51 GOSUB127: IF E THEN STOP: GOTO 50
52 Z=90: PRINT: INPUT"PATTERN *[157][157][157]";P$
53 P$="XXX"+LEFT$(P$+"[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]",16)
54 PRINT "HOLD DOWN 'Y' OR 'N' KEY TO SELECT"
55 PRINT "PROGRAMS TO BE COPIED..."
56 OPEN 1,F,3,"$"+F$: REM OK
57 GOSUB127: IF E THEN STOP: GOTO50
58 SYS(Z1)
59 R=255: GOTO 61
60 SYS(Z2)
61 FOR J=16TO2STEP-1: IF ASC(MID$(A$,J+3))=160 THEN NEXTJ
62 N$=MID$(A$,4,J)
63 T9=ASC(A$)-128: IF T9<1 OR T9>4 GOTO75
64 L1%=ASC(MID$(A$,22))
65 L2=ASC(MID$(A$,29))+ASC(MID$(A$,30))*256
66 PRINT RIGHT$(" "+MID$(STR$(L2),2),4)" :"MID$(A$,4,16)" "T$(T9)" "
67 P=PEEK(203) AND R
68 GET Z$: IF Z$="" AND P<064 GOTO73
69 IF Z$="Y" OR Z$="N" THEN Z=ASC(Z$): R=255: GOTO73
70 IF Z$=CHR$(13) THEN R=0: GOTO73
71 GOTO68
72 :
73 IF Z<80 THEN PRINT "[145] [145]": GOTO75
74 N=N+1: L2(N)=L2: N$(N)=N$: T%(N)=T9: L1%(N)=L1%
75 IF ST=0 AND N<232 GOTO60
76 XX=FR: GOSUB 136: CLOSE1: CLOSE15: PRINT " * * * * * "
77 IF N=0 THEN PRINT "* NO PROGRAMS *": GOTO 120
78 FOR J=1 TO N
79 L2=L2(J): T%=T%(J): IF L>L2 GOTO100
80 IF Q=0 GOTO84
81 PRINT "*** OUTPUT DISK FULL"
82 INPUT"DO YOU HAVE A NEW ONE";Z$
83 IF ASC(Z$)<>89 THEN 122
84 CLOSE15: XX=TU: GOSUB 136: REM SWAP TO DESTINATION
85 OPEN 15,T,15: INPUT"WANT TO NEW THE OUTPUT DISK N[157][157][157]";Z$
86 IF ASC(Z$)<>89 GOTO92
87 :
88 INPUT"DISK NAME,ID";X$,Y$
89 PRINT#15,"N"+T$+":"+X$+","+Y$
90 GOSUB127: IF E THEN STOP: GOTO84
91 :
92 PRINT#15,"I"+T$: OPEN 1,T,0,"$"+T$+": !#$%&"
93 GOSUB127: IF E THEN STOP: GOTO84
94 GOSUB131: GOSUB131: Q=Q+1
95 GET#1,X$: IF X$<>"" GOTO95
96 GOSUB131
97 L=X+Y*256: PRINT "(";L;"BLOCKS FREE )"
98 XX=TU: GOSUB 136: CLOSE1: CLOSE15: GOTO79
99 :
100 XX=FR: GOSUB 136: OPEN 14,F,15: REM SOURCE CMD CHANNEL
101 XX=TU: GOSUB 136: OPEN 15,T,15: REM DEST CMD CHANNEL
102 PRINT LEFT$(N$(J)+" ",21);
103 XX=FR: GOSUB 136: OPEN 3,F,3,F$+":"+N$(J)+","+T$(T%)
104 INPUT#14,E,E$,E1,E2: GOSUB128: IF E THEN PRINT "** ";E$;E: GOTO117
105 :
106 XX=TU: GOSUB 136: REM DESTINATION
107 IF T%=4 THEN OPEN 4,T,4,T$+":"+N$(J)+",L,"+CHR$(L1%(J)): GOTO111
108 :
109 OPEN 4,T,4,T$+":"+N$(J)+","+T$(T%)+",W"
110 :
111 L=L-L2: GOSUB127: IF E THEN PRINT "*** ";E$;E: GOTO117
112 IF T%=4 THEN SYS(Z4): GOTO114: REM RELATIVE COPY
113 SYS(Z3)
114 XX=TU: GOSUB 136: REM SET DESTINATION AGAIN
115 N$(J)="": GOSUB127: IF E THEN PRINT "**** ";E$;E: GOTO117
116 PRINT "[145]"
117 XX=FR: GOSUB 136: CLOSE3: CLOSE14: REM SOURCE
118 XX=TU: GOSUB 136: CLOSE4: CLOSE15: REM DESTINATION
119 NEXTJ
120 X=FRE(0): INPUT"ANOTHER INPUT DISK READY";Z$
121 IF ASC(Z$)=89 GOTO50
122 POKE 1,55: END
123 INPUT"DRIVE 0[157][157][157]";D
124 IF D*D<>D GOTO123
125 D$=CHR$(D+48): RETURN
126 :
127 INPUT#15,E,E$,E1,E2
128 IF E=0 THEN E=(ST AND 191): E$="*ST*"
129 RETURN
130 :
131 GET#1,X$,X$,X$
132 X=ASC(X$+CHR$(0))
133 GET#1,X$: Y=ASC(X$+CHR$(0))
134 RETURN
135 :
136 POKE TP,PEEK(XX): SYS(SWAP): RETURN: REM FLIP TO SOURCE/DESTINATION DRIVE